package LRU;
/**
 * @author 曲大人的喵
 * @description
 * @create 2025/8/28 09:28
 * @since JDK17
 */

import lombok.Data;

/**
 * 双向链表节点：存储key、value及前驱/后继指针
 * @param <K> 键类型
 * @param <V> 值类型
 */
@Data
public class DoubleLinkedNode<K, V> {
    private K key;          // 缓存键（淘汰时需通过节点获取key，从哈希表移除）
    private V value;        // 缓存值
    private DoubleLinkedNode<K, V> prev;  // 前驱节点（双向链表特有）
    private DoubleLinkedNode<K, V> next;  // 后继节点

    // 带参构造：创建新缓存节点
    public DoubleLinkedNode(K key, V value) {
        this.key = key;
        this.value = value;
    }

    // 无参构造：初始化头/尾哨兵节点
    public DoubleLinkedNode() {}
}
